#pragma once
#ifndef _RENDERER_H_

#endif // !_RENDERER_H_

#include <iostream>

#include <GL/glew.h>

#include "VertexArray.h"
#include "IndexBuffer.h"
#include "Shader.h"

#include "Core.h"
class OPENGL_API_ VertexArray;

#define ASSERT(x) if (!(x)) __debugbreak();
#define GLCall(x) GLClearError();\
    x;\
    ASSERT(GLLogCall(#x, __FILE__, __LINE__))


void GLClearError();
bool GLLogCall(const char* function, const char* file, int line);

class OPENGL_API_ Renderer
{
public:
	Renderer() {}
	~Renderer() {}
	void Clear();
	void Draw(const VertexArray& va, const IndexBuffer& ib, const Shader& shader) const;
private:
};